﻿#define _CRT_SECURE_NO_WARNINGS 1

//描述:KiKi非常喜欢网购，在一家店铺他看中了一件衣服，他了解到，如果今天是“双11”（11月11日）则这件衣服打7折，
//“双12” （12月12日）则这件衣服打8折，如果有优惠券可以额外减50元（优惠券只能在双11或双12使用），求KiKi最终所花的钱数。
//数据范围：衣服价格满足1≤val≤100000
//输入描述：一行，四个数字，第一个数表示小明看中的衣服价格，第二和第三个整数分别表示当天的月份、当天的日期、第四个整数表示是否有优惠券（有优惠券用1表示，无优惠券用0表示）。 注：输入日期保证只有“双11”和“双12”。
//输出描述：一行，小明实际花的钱数（保留两位小数）。（提示：不要指望商家倒找你钱）
//示例1
//输入：
//1000.0 11 11 1
//输出：
//650.00
//示例2
//输入：
//999.8 12 12 0
//输出：
//799.84
//示例3
//输入：
//66.6 11 11 1
//输出：
//0.00
//#include <stdio.h>
//int main() {
//    int  month = 0, days = 0, coupon_num = 0;
//    float price = 0.0;
//    scanf("%f %d %d %d", &price, &month, &days, &coupon_num);
//    if (month == 11 && days == 11)
//    {
//        price = 0.7 * price - coupon_num * 50;
//        if (price <= 0.0)
//            price = 0.0;
//    }
//    else
//    {
//        price = 0.8 * price - coupon_num * 50;
//        if (price <= 0.0)
//            price = 0.0;
//    }
//    printf("%.2f", price);
//    return 0;
//}

//描述:牛牛正在寄快递，他了解到快递在 1kg 以内的按起步价 20 元计算，超出部分按每 kg 1元计算，
//不足 1kg 部分按 1kg计算。如果加急的话要额外付五元，请问牛牛总共要支付多少快递费
//输入描述：第一行输入一个单精度浮点数 a 和一个字符 b ，a 表示牛牛要寄的快递的重量，b表示牛牛是否选择加急，'y' 表示加急 ，'n' 表示不加急。
//输出描述：输出牛牛总共要支付的快递费用
//示例1
//输入：
//1.5 y
//输出：
//26
//示例2
//输入：
//0.7 n
//输出：
//20
//#include <stdio.h>
//int main() {
//    float a = 0.0;
//    char b = '0';
//    int price = 0, extra = 0;
//    scanf("%f %c", &a, &b);
//    if (a <= 1)
//    {
//        if (b == 'y')
//            price = 20 + 5;
//        else
//            price = 20;
//    }
//    else
//    {
//        extra = a - 1;
//        if (extra != (a - 1))
//        {
//            extra = extra + 1;
//        }
//        if (b == 'y')
//        {
//            price = 20 + extra * 1 + 5;
//        }
//        else
//        {
//            price = 20 + extra * 1;
//        }
//    }
//    printf("%d", price);
//    return 0;
//}

//描述:牛牛商场促销活动：
//满100打9折；
//满500打8折；
//满2000打7折；
//满5000打6折
//牛阿姨算不清楚自己应该付多少钱，请你帮忙算一下
//输入描述：
//牛阿姨购买商品打折前的总金额
//输出描述：
//参加活动后，牛阿姨购买商品应付金额。（保留小数点后1位）
//示例1
//输入：
//654
//输出：
//523.2
//#include <stdio.h>
//int main() {
//    float price = 0.0;
//    scanf("%f", &price);
//    if (price >= 100 && price < 500)
//        price = price * 0.9;
//    else if (price >= 500 && price < 2000)
//        price = price * 0.8;
//    else if (price >= 2000 && price < 5000)
//        price = price * 0.7;
//    else if (price >= 5000)
//        price = price * 0.6;
//    printf("%.1f", price);
//    return 0;
//}

//描述:牛牛的通勤路上有两种选择，要么走路，要么打车，牛牛走路的速度是 1m / s 。打车的速度的 10m / s ，但是打车需要等出租车 10 s，请你计算牛牛想尽快到公司应该选择打车还是走路。
//输入描述：输入一个正整数，表示牛牛到公司的距离。
//输出描述：输出牛牛想尽可能快到公司应该选择打车还是走路，走路的话输出 w ， 打车的输出 v。保证答案一定不会出现两个方案时间一样的情况。
//示例1
//输入：
//10
//输出：
//w
//示例2
//输入：
//13
//输出：
//v
//#include <stdio.h>
//int main() {
//    int s = 0;
//    float t_w = 0, t_v = 0;
//    scanf("%d", &s);
//    t_w = s / 1.0;
//    t_v = s / 10.0 + 10;
//    if (t_w < t_v)
//        printf("w");
//    else
//        printf("v");
//
//    return 0;
//}

//描述:牛牛尝试在蒙住眼睛的情况下拿到旁边的金币，假设的坐标是(x, y) ，金币的坐标是(x1, y1) ，
//金币一定在牛牛在周围，即∣x1−x∣ + ∣y1−y∣ = 1
//​请你判断牛牛应该往哪个方向伸手。
//输入描述：第一行输入 x, y 表示牛牛的坐标。
//第二行输入 x1, y1 表示金币的坐标。保证∣x1−x∣ + ∣y1−y∣ = 1
//坐标是整数。
//输出描述：输出牛牛应该往哪个方向伸手。
//例
//(x, y) = (0, 0) (x1, y1) = (0, 1) ，则牛牛向上伸手，输出 'u' 。
//(x, y) = (0, 0) (x1, y1) = (0, -1) ，则牛牛向下伸手，输出 'd'。
//(x, y) = (0, 0) (x1, y1) = (1, 0) ，则牛牛向右伸手，输出 'r'。
//(x, y) = (0, 0) (x1, y1) = (-1, 0) ，则牛牛向左伸手，输出 'l'。
//示例1
//输入：
//0 0
//0 1
//输出：
//u
//#include <stdio.h>
//int main() {
//    int x = 0, y = 0, x1 = 0, y1 = 0;
//    scanf("%d %d %d %d", &x, &y, &x1, &y1);
//    if (x1 == (x + 1))
//        printf("r");
//    if (x1 == (x - 1))
//        printf("l");
//    if (y1 == (y - 1))
//        printf("d");
//    if (y1 == (y + 1))
//        printf("u");
//    return 0;
//}

//描述:牛牛的一周有七天，从周一到周日对应的英文是
//1、星期一：Monday
//2、星期二：Tuesday
//3、星期三：Wednesday
//4、星期四：Thursday
//5、星期五：Friday
//6、星期六：Saturday
//7、星期日：Sunday
//牛牛知道今天是星期几，请输出这天的英文
//输入描述：
//输入今天是星期几
//输出描述：
//输出对应的英文
//示例1
//输入：
//1
//输出：
//Monday
//#include <stdio.h>
//int main() {
//    int days = 0;
//    scanf("%d", &days);
//    switch (days)
//    {
//    case 1:printf("Monday"); break;
//    case 2:printf("Tuesday"); break;
//    case 3:printf("Wednesday"); break;
//    case 4:printf("Thursday"); break;
//    case 5:printf("Friday"); break;
//    case 6:printf("Saturday"); break;
//    case 7:printf("Sunday"); break;
//    }
//    return 0;
//}

//描述:KiKi访问网站，得到HTTP状态码，但他不知道什么含义，BoBo老师告诉他常见HTTP状态码：200（OK，请求已成功），
//202（Accepted，服务器已接受请求，但尚未处理。）400（Bad Request，请求参数有误），403（Forbidden，被禁止），
//404（Not Found，请求失败），500（Internal Server Error，服务器内部错误），502（Bad Gateway，错误网关）。
//输入描述：多组输入，一行，一个整数（100~600），表示HTTP状态码。
//输出描述：针对每组输入的HTTP状态，输出该状态码对应的含义，具体对应如下：
//200 - OK
//202 - Accepted
//400 - Bad Request
//403 - Forbidden
//404 - Not Found
//500 - Internal Server Error
//502 - Bad Gateway
//示例1
//输入：
//200
//输出：
//OK
//#include <stdio.h>
//int main() {
//    int num = 0;
//    while (scanf("%d", &num) != EOF)
//    {
//        switch (num)
//        {
//        case 200:printf("OK\n"); break;
//        case 202:printf("Accepted\n"); break;
//        case 400:printf("Bad Request\n"); break;
//        case 403:printf("Forbidden\n"); break;
//        case 404:printf("Not Found\n"); break;
//        case 500:printf("Internal Server Error\n"); break;
//        case 502:printf("Bad Gateway\n"); break;
//        }
//    }
//    return 0;
//}

//描述:KiKi最近学习了信号与系统课程，这门课里有一个非常有趣的函数，单位阶跃函数，其中一种定义方式为：
//现在试求单位冲激函数在时域t上的值。
//输入描述：题目有多组输入数据，每一行输入一个t
//输出描述：
//输出函数的值并换行。
//示例1
//输入：
//11
//0
//- 11
//输出：
//1
//0.5
//0
//#include <stdio.h>
//int main() {
//    int t = 0;
//    while (scanf("%d", &t) != EOF)
//    {
//        if (t > 0)
//            printf("%d\n", 1);
//        else if (t == 0)
//            printf("%.1f\n", 0.5);
//        else
//            printf("%d\n", 0);
//    }
//    return 0;
//}

//描述:牛牛有一个学习计划，他计划在 y 年 m 月 d 日开始学习，但在之前他是绝不会开始学习的，但是他一旦开始学习就不会停下来，请你判断 y1 年 m1 月 d1 日牛牛应该学习吗。
//输入描述：第一行输入 y ，m ，d ，即牛牛计划开始学习的时间。
//第二行输入 y1，m1，d1，即询问的时间。
//输出描述：请你判断牛牛是否开始学习。如果是则输出 yes ，否则输出 no
//示例1
//输入：
//2022 2 11
//2022 2 11
//输出：
//yes
//示例2
//输入：
//2022 2 11
//2022 2 10
//输出：
//no
//示例3
//输入：
//2022 2 11
//2022 2 12
//输出：
//yes
//#include <stdio.h>
//int main() {
//    int y = 0, m = 0, d = 0;
//    int y1 = 0, m1 = 0, d1 = 0;
//    scanf("%d %d %d", &y, &m, &d);
//    scanf("%d %d %d", &y1, &m1, &d1);
//    if (y1 > y)
//        printf("yes");
//    else if (y1 == y)
//    {
//        if (m1 > m)
//            printf("yes");
//        else if (m1 == m)
//        {
//            if (d1 >= d)
//                printf("yes");
//            else
//                printf("no");
//        }
//        else {
//            printf("no");
//        }
//    }
//    else printf("no");
//    return 0;
//}

//描述:从键盘输入a, b, c的值，编程计算并输出一元二次方程ax2 + bx + c = 0的根，当a = 0时，输出“Not quadratic equation”，当a ≠ 0时，根据△ = b2 - 4 * a * c的三种情况计算并输出方程的根。
//输入描述：多组输入，一行，包含三个浮点数a, b, c，以一个空格分隔，表示一元二次方程ax2 + bx + c = 0的系数。
//输出描述：针对每组输入，输出一行，输出一元二次方程ax2 + bx + c = 0的根的情况。
//如果a = 0，输出“Not quadratic equation”；
//如果a ≠  0，分三种情况：
//△ = 0，则两个实根相等，输出形式为：x1 = x2 = ...。
//△ > 0，则两个实根不等，输出形式为：x1 = ...; x2 = ...，其中x1 <= x2。
//△ < 0，则有两个虚根，则输出：x1 = 实部 - 虚部i; x2 = 实部 + 虚部i，即x1的虚部系数小于等于x2的虚部系数，
//实部为0时不可省略。实部 = -b / (2 * a), 虚部 = sqrt(-△) / (2 * a)
//所有实数部分要求精确到小数点后2位，数字、符号之间没有空格。
//示例1
//输入：
//2.0 7.0 1.0
//输出：
//x1 = -3.35; x2 = -0.15
//示例2
//输入：
//0.0 3.0 3.0
//输出：
//Not quadratic equation
//示例3
//输入：
//1 2 1
//输出：
//x1 = x2 = -1.00
//示例4
//输入：
//2 2 5
//输出：
//x1 = -0.50 - 1.50i; x2 = -0.50 + 1.50i
//示例5
//输入：
//1 0 1
//输出：
//x1 = 0.00 - 1.00i; x2 = 0.00 + 1.00i
//#include <stdio.h>
//#include <math.h>
//int main() {
//    float a = 0.0, b = 0.0, c = 0.0;
//    float dat = 0.0;
//    float x1 = 0.0, x2 = 0.0, i = 0.0;
//    while (scanf("%f %f %f", &a, &b, &c) != EOF) {
//        if (a == 0)
//            printf("Not quadratic equation\n");
//        else
//        {
//            dat = b * b - 4 * a * c;
//            if (dat == 0)
//            {
//                x1 = (-1 * b - sqrtf(dat)) / (2 * a);
//                x2 = (-1 * b + sqrtf(dat)) / (2 * a);
//                if (x1 == -0.0)
//                {
//                    x1 = 0.0;
//                    x2 = 0.0;
//                }
//                printf("x1=x2=%.2f\n", x1);
//            }
//            else if (dat > 0)
//            {
//                x1 = (-1 * b - sqrtf(dat)) / (2 * a);
//                x2 = (-1 * b + sqrtf(dat)) / (2 * a);
//                printf("x1=%.2f;x2=%.2f\n", x1, x2);
//            }
//            else
//            {
//                dat = dat * -1;
//                x1 = (-1 * b) / (2 * a);
//                x2 = (-1 * b) / (2 * a);
//                i = sqrtf(dat) / (2 * a);
//                printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n", x1, i, x2, i);
//            }
//
//        }
//    }
//    return 0;
//}

//描述:KiKi想获得某年某月有多少天，请帮他编程实现。输入年份和月份，计算这一年这个月有多少天。
//输入描述：多组输入，一行有两个整数，分别表示年份和月份，用空格分隔。
//输出描述：针对每组输入，输出为一行，一个整数，表示这一年这个月有多少天。
//示例1
//输入：
//2008 2
//输出：
//29
//#include <stdio.h>
//int main() {
//    int y = 0, m = 0;
//    int flag = 0;
//    while (scanf("%d %d", &y, &m) != EOF) {
//        if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
//            flag = 1;
//        else
//            flag = 0;
//        if (flag == 1 && m == 2)
//            printf("%d\n", 29);
//        else
//        {
//            switch (m)
//            {
//            case 1:
//            case 3:
//            case 5:
//            case 7:
//            case 8:
//            case 10:
//            case 12:printf("%d\n", 31); break;
//            case 4:
//            case 6:
//            case 9:
//            case 11:printf("%d\n", 30); break;
//            case 2:printf("%d\n", 28); break;
//            }
//        }
//    }
//    return 0;
//}